package com.inspur.edp.bff.api.manager.context;

import com.inspur.edp.cef.entity.entity.IEntityData;
import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 新增子上下文
 * 新增前，新增，新增后扩展动作共用一个新增上下文
 * 扩展动作执行顺序可参考：<a href=https://open.inspuronline.com/iGIX/#/document/mddoc/docs-gsp-cloud-ds%2Fdev-guide-beta%2Fadvanced-development%2Fvo-relatedcomponent-development%2F%E6%89%A9%E5%B1%95%E5%8A%A8%E4%BD%9C%2Fvo%E6%89%A9%E5%B1%95%E5%8A%A8%E4%BD%9C.md">点击这里</a>查看
 */
public class RetrieveDefaultChildContext {
    /**
     * 获取新增的Vo数据，这里的数据指的是经过数据Mapping转换之后得到的vo数据集
     */
    @Getter
    @Setter
    private IEntityData retrieveDefaultResult;

    @Getter
    private HashMap<String, ArrayList<IEntityData>> retrieveDefaultData = new HashMap<>();

    @Getter
    @Setter
    private List<String> nodeCodes;

    @Getter
    @Setter
    private List<String> hierachyIds;
    private String dataId;

    public String getNodeCode() {
        return nodeCodes == null || nodeCodes.isEmpty() ? null : nodeCodes.get(nodeCodes.size() - 1);
    }

    /**
     * 获取新增时设置的数据id
     *
     * @return
     */
    public final String getDataId() {
        return dataId;
    }

    /**
     * 设置新增数据id
     *
     * @param value
     */
    public final void setDataId(String value) {
        dataId = value;
    }
}
